#pragma once
#include "timer_utils.hpp"

class ClassA {
public:
    void process() {
        // 记录开始时间点
        TimeUtils::TimestampManager::record("ClassA_start");//时间戳带键名
        
        std::cout << "ClassA 开始处理..." << std::endl;
        
        // 模拟一些工作
        std::this_thread::sleep_for(std::chrono::milliseconds(100));
        
        // 记录结束时间点（可选）
        TimeUtils::TimestampManager::record("ClassA_end");
        
        std::cout << "ClassA 处理完成" << std::endl;
    }
    
    // 或者在其他关键方法中记录
    void specific_method() {
        TimeUtils::TimestampManager::record("ClassA_specific");
        // ... 具体逻辑
    }
};


class ClassB {
public:
    void process() {
        // 记录开始时间点
        TimeUtils::TimestampManager::record("ClassB_start");
        
        std::cout << "ClassB 开始处理..." << std::endl;
        
        // 模拟一些工作
        std::this_thread::sleep_for(std::chrono::milliseconds(150));
        
        // 记录结束时间点（可选）
        TimeUtils::TimestampManager::record("ClassB_end");
        
        std::cout << "ClassB 处理完成" << std::endl;
        
        // 可以立即计算与ClassA的时间差
        try {
            TimeUtils::TimestampManager::print_difference("ClassA_start", "ClassB_start");
            TimeUtils::TimestampManager::print_difference("ClassA_end", "ClassB_start");
        } catch (const std::exception& e) {
            std::cout << "⚠️  无法计算时间差: " << e.what() << std::endl;
        }
    }
};